#include "Fase.h"
#include "engcomp_glib.h"
#include "Jogo.h"
#include "Posicionamento.h"


Fase::Fase()
: Jogo(resHorizontal, resVertical, modoTela) , posicaoCenarioA(0,0), posicaoCenarioB(0,0)
{
	//posicaoCenarioA.defPosHorizontal(0);
	//posicaoCenarioA.defPosVertical(0);

	//posicaoCenarioB.defPosHorizontal(0);
	//posicaoCenarioB.defPosVertical(0);
	defCenarioAAtivo(true);
	defCenarioBAtivo(false);
	contadorChefe = 0;
	posicaoCenarioA.defPosHorizontal(0);
	posicaoCenarioA.defPosVertical(0);
	posicaoCenarioB.defPosHorizontal(0);
	posicaoCenarioB.defPosVertical(0);
	cenarioParteA.carregar("imagens\\space.BMP");
	cenarioParteB.carregar("imagens\\space2.BMP");

}

Fase::~Fase()
{
}


void Fase::animarCenario(){
	if(cenarioAAtivo)
	{
		cenarioParteA.desenha(posicaoCenarioA.recPosHorizontal(), posicaoCenarioA.recPosVertical());

		if(posicaoCenarioA.recPosVertical() == 0)
		{
			posicaoCenarioB.defPosVertical(posicaoCenarioB.recPosVertical() - cenarioParteB.getResY());
			posicaoCenarioB.defPosHorizontal(0);
			defCenarioBAtivo(true); // Ativa o fundo 2
			contadorChefe ++;
		}

		//fundoPosY += VEL_FUNDO;
		posicaoCenarioA.defPosVertical((posicaoCenarioA.recPosVertical()+deslocamentoFundo));

	}


	if(cenarioBAtivo)
	{
		//fundoJogo2.desenha(fundoPos2X, fundoPos2Y);
		cenarioParteB.desenha(posicaoCenarioB.recPosHorizontal(), posicaoCenarioB.recPosVertical());

		//fundoPos2Y += VEL_FUNDO;

		posicaoCenarioB.defPosVertical((posicaoCenarioB.recPosVertical() + deslocamentoFundo));

		//if(fundoPos2Y == 0)
		if(posicaoCenarioB.recPosVertical() == 0)
		{
			//fundoPosY = -fundoJogo.getResY();
			posicaoCenarioA.defPosVertical((posicaoCenarioA.recPosVertical()-cenarioParteA.getResY()));
			//fundoPosX = 0;
			posicaoCenarioA.defPosHorizontal(0);
			//fundoAtivo = true; //Ativa o fundo 1.
			defCenarioAAtivo(true);
			//bosscont ++;
			contadorChefe++;
		}

	}

	//if(fundoPosY > 600)
	if(posicaoCenarioA.recPosVertical() > 600)
	{
		//fundoAtivo = false; //Para o fundo 1
		defCenarioAAtivo(false);
	}
	//if(fundoPos2Y > 600)
	if(posicaoCenarioB.recPosVertical() > 600)
	{
		//fundoAtivo2 = false; //Para o fundo 2
		defCenarioBAtivo(false);

	}


}


void Fase::defCenarioAAtivo(bool newVal){

	cenarioAAtivo = newVal;
}


void Fase::defCenarioBAtivo(bool newVal){

	cenarioBAtivo = newVal;
}


bool Fase::recCenarioAAtivo(){

	return cenarioAAtivo;
}


bool Fase::recCenarioBAtivo(){

	return cenarioBAtivo;
}